package exception;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @Author Justin Parker
 * @Date 2024/7/17 0017 16:05
 * @Version 1.0
 */
public class TryCatchDemo03 {
    public static void main(String[] args) {
        FileOutputStream fos = null;
        try{
            fos = new FileOutputStream("./f1.text",true);
            fos.write(100);
            fos.close();
            //System.exit(0); //只有退出虚拟机，finally才不会执行
        } catch( Exception e1){   //先子类异常，再父类异常   当多种类型的异常处理机制相同时，可以合并异常，异常类型为父类类型
            e1.printStackTrace();
        }finally {  //最终执行代码块
            System.out.println("finally");
            if (fos != null)try {                   //NullPointerException 空指针异常
                fos.close();
                fos = null;
            }catch (IOException e2){
                e2.printStackTrace();
            }
        }
    }
}
